/**
 * Created by Administrator on 2017/9/9.
 */


$(document).ready(function () {

    //Handlebars编译代码
    var cartTemplate=$('#cart-template').html();
    var cartCmp=Handlebars.compile(cartTemplate);

    $('.aui-icon-left').click(function () {
        event.stopPropagation();
        window.location.href=document.referrer;
    });

    //设置默认购买的id为空
    var buyId='';

    if (C.token){

        var loading=dialog.loading();

        $.ajax({
            url:C.interface.cartDetail,
            type:'get',
            dataType:'json',
            data:{
                token:C.token
            },
            complete:function () {
                loading.close();
            },
            success:function (response) {
                if (response.result === 'success'){
                    var data=response.data;
                    var count=data.totalCount;
                    if (count == 0){
                        $('.null-cart').show();
                    }else{
                        $('#cart-box').html(cartCmp(data));
                        updateCartHtml();
                        //给id为allChoose和editChoose的元素添加chooseAll商品全选事件
                        $(document).on("change", '#allChoose , #editChoose', chooseAll);
                        //给购物车单件选择商品按钮绑定价格函数
                        $(document).on("change", 'input[name=chooseCart]', updateCartHtml);
                        //编辑状态 选择按钮变化，不明白!
                        $(document).on("change", 'input[name=editCart]', updateCartHtml);
                        //点击编辑
                        $(document).on('click','header .right',editCart);
                        //调用加减  分别给+ -绑定点击事件
                        $('.shop-add').bind('click',cartJia);
                        $('.shop-sub').bind('click',cartJian);

                        //删除商品
                        $('#delCart').bind('click',delCart);
                        $('#go-pay').bind('click',goJieSuan);

                    }

                }
            }

        })
    }else {
        alert('登录过期请重新登录');
        againLogin();
    }


    function goJieSuan() {
        //商品个数取值
        var selectNull=$('.cart-go-pay').find('#number').html();
        //console.log(selectNull);
        //要结算：商品数量是0的时候
        if (selectNull>0){
            //循环所有的（每一项）商品选择
            $("input[name=chooseCart]").each(function (k, v) {
                //怎么走都是true
                if (this.checked) {
                    var pId = $(this).parents('.cart-list-box').data('productid');
                    var sId = $(this).parents('.cart-list-box').data('skuid');
                    var sNumber=$(this).parents('.cart-list-box').find('.shop-add-sub').find('.number').html();
                    buyId = '';
                    buyId+= pId+':'+sId+':'+sNumber+',';

                }else{}
                //设置localStorage,属性名orderSubmitId,属性值:buyId
                var orderSubmitId=localStorage.setItem('orderSubmitId',buyId);
                //console.log(orderSubmitId);
            });


            location.href='confirm-order.html?version='+C.version;
        }else {
            return false;
            //$('.null-cart').show();
        }

    }



    //商品数量为空时显示您的购物车内为空
    function nullCart() {
        if($('#cart-box').find('a').find('.cart-list-box').length==0){
            $('.null-cart').show();
        }
    }

    /*商品数量加*/
    function cartJia() {

        //清除默认行为 (例如：a标签,点击会跳转)
        event.preventDefault();

        //获取数量
        var number=parseInt($(this).parent('.shop-add-sub').find('.shop-number').html());
        var productSkuId = $(this).parents('.cart-list-box').data('skuid');
        console.log(number);
        //单个商品超过99个就不让其再添加下去
        if (number>=99){
            return false;
        }
        //三元运算符:如果商品数量=0的时候就让数量=1
        number=number>0?number : 1;
        //每次都累加1
        number++;
        //更新购物车数量
        updateCartNumber(productSkuId,number);
    }



    /*商品数量减*/
    function cartJian() {
        event.preventDefault();
        var number=parseInt($(this).parent('.shop-add-sub').find('.shop-number').html());
        var productSkuId = $(this).parents('.cart-list-box').data('skuid');
        number = number > 0 ? number : 1;
        number--;
        updateCartHtml(number);
        if (number==0){
            return false;
        }else {
            updateCartNumber(productSkuId,number);
        }
    }

    //更新购物车数量
    function updateCartNumber(productSkuId,number) {

        var loading=dialog.loading('');

        $.ajax({
            url:C.interface.cartUpdate,
            type:'get',
            dataType:'json',
            data:{
                token:C.token,
                productSkuId:productSkuId,
                number:number
            },
            complete:function () {
                loading.close();
            },
            success:function (response) {
                if (response.result === 'success'){
                    //把累加完的数放入到中间数量显示区域
                    $("#cart-box li[data-skuid='" + productSkuId + "']")
                        .find('.cart-detail').find('.shop-add-sub')
                        .find('.number').html(number);
                    updateCartHtml(number);
                }else {
                    dialog.tusiError('更新购物车失败');
                }
            }
        })
    }

    //商品数量为空时显示您的购物车内为空
    function nullCart() {
        if($('#cart-box').find('a').find('.cart-list-box').length==0){
            $('.null-cart').show();
        }
    }

    //商品全选
    function chooseAll() {
        var isChecked = $(this).is(":checked");
        console.log(isChecked);
        // hasClass筛选body中是否包含有edit类名的元素
        if ($("body").hasClass('edit')) {
            $("input[name=editCart]").each(function (k, v) {
                this.checked = isChecked;
            });
        } else {
            $("input[name=chooseCart]").each(function (k, v) {
                this.checked = isChecked;
            });
            updateCartHtml();
        }
    }

    //更新商品价格及总价
    function updateCartHtml(number) {
        var hasAllChecked = true;
        if ($("body").hasClass("edit")) {
            $("input[name=editCart]").each(function (k, v) {
                if (!$(this).is(":checked")) hasAllChecked = false;
            });
            document.getElementById('editChoose').checked = hasAllChecked ? true : false;
        }else{
            var num = 0, totalPrice = 0;
            $("input[name=chooseCart]").each(function (k, v) {
                if ($(this).is(":checked")) {
                    var navList = $(this).parents('.cart-list-box');
                    num += parseInt(navList.find(".number").html());

                    totalPrice = addFloatNum(totalPrice, accMul(parseFloat(navList.find(".shop-danjia").html()) , parseInt(navList.find(".number").html())), 'jia');
                } else {
                    hasAllChecked = false;
                }
            });
            $('#number').html(num);
            $('#totalPrice').html(toDecimal2(totalPrice));
            document.getElementById('allChoose').checked = hasAllChecked ? true : false;
        }

    }


    /**
     *  循环删除商品
     *
     * */
    function delCart() {
        var delArr=[];
        $('input[name=editCart]').each(function (k,v) {
            if(this.checked){
                delArr.push({
                    productSkuId:$(this).parents('.cart-list-box').data('skuid')
                })
            }
        });
        if (delArr.length == 0){
            dialog.tusiError('您还没有选择商品哦');
        }else {
            dialog.confirm({
                title: "确认要删除这" + delArr.length + "种商品吗",
                content: "",
                ok: function () {
                    delCartData(delArr);
                },
                cancel: function () {

                }
            })
        }
    }

    /**
     * 删除购物车
     * 判断是否登陆 1。登陆 调接口删除 2.为登陆 删除本地缓存数据
     * @param delArr
     */
    function delCartData(delArr) {
        $.each(delArr, function (k, v) {
            cycleDelete(v.productSkuId);
        });
    }



    /**
     * 循环删除商品
     * @param productSkuId
     */

    function cycleDelete(productSkuId) {

        $.ajax({
            url:C.interface.cartDelete,
            type:'get',
            dataType:'json',
            data:{
                token:C.token,
                productSkuIds:productSkuId
            },
            success:function (response) {
                if (response.result === 'success'){
                    $("#cart-box li[data-skuid='" + productSkuId + "']").remove();
                    nullCart();
                    updateCartHtml();
                }else {
                    dialog.tusiError('删除失败');
                }
            }
        });

    }



    /**
     * 编辑状态
     * */
    function editCart() {
        event.preventDefault();
        if ($("body").hasClass("edit")) {
            $('body').removeClass("edit").addClass('default');
            $(this).html("编辑");
            updateCartHtml();
        } else {
            $('body').addClass("edit").removeClass("default");
            $(this).html("完成");
        }
    }
});